package com.taylor.spring5.service;

import com.taylor.spring5.dao.UserDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

/**
 * @author taylor
 * @Description: TODO
 * @date 2021/4/1 22:58
 */
@Service
public class UserService {

    //创建 UserDao 类型属性，生成 set 方法
    @Autowired
    private UserDao  userDao;

    public void setUserDao(UserDao userDao) {
        this. userDao = userDao;
    }
    public void add() {
        System. out .println( "service add...............");
        userDao.add();
    }

    /**
     *项目中同时出现两个数据源和两个相关的事务管理器时，在使用@Transactional()注解时如果不直接指定，
     * Spring就不知道具体使用哪一个事务管理器来进行事务管理了，因此需要通过某种方式来具体指定一下
     * 添加事务 多个数据源 指定事务管理器
     */
    @Transactional(transactionManager = "transactionManager")
    public void chgAccount(){
        userDao.reduceAccount();
//        int i = 10/0;
        userDao.addAccount();
        System.out.println("成功扣除金额！");
    }
}
